use standard way to find the checkum type and really send it to server
authorMatthieu Gallien <matthieu.gallien@nextcloud.com>
Wed, 19 Mar 2025 14:13:56 +0000 (15:13 +0100)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Thu, 20 Mar 2025 13:45:45 +0000 (13:45 +0000)
will fix missing checksum for bulk upload

will ensure consistent behavior between bulk upload, plain old upload
and chunked upload

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
src/libsync/bulkpropagatorjob.cpp

index 2d06298fe10880c5644ca08372876dbaf672d5a7..d2989425a318b620c4181865033abf82e893024a 100644 (file)
@@ -180,7 +180,7 @@ void BulkPropagatorJob::doStartUpload(SyncFileItemPtr item,
 
     const auto remotePath = propagator()->fullRemotePath(fileToUpload._file);
 
-    currentHeaders["X-File-MD5"] = transmissionChecksumHeader;
+    currentHeaders[checkSumHeaderC] = transmissionChecksumHeader;
 
     BulkUploadItem newUploadFile{propagator()->account(), item, fileToUpload,
                 remotePath, fileToUpload._path,
@@ -268,7 +268,7 @@ void BulkPropagatorJob::slotComputeTransmissionChecksum(SyncFileItemPtr item,
 {
     // Compute the transmission checksum.
     const auto computeChecksum = new ComputeChecksum(this);
-    const auto checksumType = uploadChecksumEnabled() ? "MD5" : "";
+    const auto checksumType = uploadChecksumEnabled() ? propagator()->account()->capabilities().preferredUploadChecksumType() : "";
     computeChecksum->setChecksumType(checksumType);
 
     connect(computeChecksum, &ComputeChecksum::done, this, [this, item, fileToUpload] (const QByteArray &contentChecksumType, const QByteArray &contentChecksum) {